﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
// Copyright (C) 2021 kingerrobot
// 版权所有。 
//
// 文件名：BProdSku
// 文件功能描述：
//
// 创建者：名字 (zzl)
// 时间：2021/12/9 8:33:13
//
// 修改人：
// 时间：
// 修改说明：
// 版本：V1.0.0
//----------------------------------------------------------------*/
#endregion
namespace KingerRobot.MexicoSailunWMS.SpiService;

internal class BProdSku : IProdSku
{
    public POProdSku CreateProdSku(ProdSkuBean prodSkuBean)
    {
        var skuCode = prodSkuBean.SkuCode;
        var materialId = prodSkuBean.MaterialId;
        var productBatch = prodSkuBean.ProductBatch;
        var mdTime = prodSkuBean.MdTime;
        var result = new POProdSku
        {
            Id = XID.Nextval,
            SkuCode = skuCode,
            MaterialId = materialId,
            ProductBatch = productBatch,
            MdTime = mdTime,
        };

        var db = Db.Default;

        db.ProdSkus.Insert(result);
        return result;
    }

    public POProdSku DeleteProSku(string skuCode)
    {
        var db = Db.Default;
        var result = GetProdSkuBySkuCode(skuCode);
        if (result != null)
        {
            db.ProdSkus.Remove(result);
            var num = db.SaveChanges();
            if (num == 0)
            {
                return null;
            }
            return result;
        }
        return result;
    }

    public POProdSku GetProdSkuById(long? skuId)
    {
        var db = Db.Default;
        var result = db.ProdSkus.Where(t => t.Id == skuId).FirstOrDefault();
        return result;
    }

    public POProdSku GetProdSkuBySkuCode(string skuCode)
    {
        var db = Db.Default;
        var result = db.ProdSkus.Where(t => t.SkuCode == skuCode).FirstOrDefault();
        return result;
    }
    public List<POProdSku> GetProdSkuList()
    {
        var db = Db.Default;
        var result = db.ProdSkus.ToList();
        return result;
    }
    public List<POProdSku> GetProdSkuListByTaskIds(List<long?> taskIds)
    {
        var db = Db.Default;
        var result = db.ProdSkus.Where(t=> taskIds.Contains(t.Id)).ToList();
        return result;
    }
}
